const baseDao = require("./BaseDao");

const table = "goods";

/**
 * 分页查询
 * @param where 查询条件对象
 */
function findByPage(where,and = "") {
    return baseDao.findByPage(table,where,and,"*");
}

/**
 * 自定义条件查询多条数据
 */
// function findUsernameByDormId(where) {
//     return baseDao.findBy(table,where,"id, username, dormId");
// }


/**
 * 根据id搜索
 * @param id
 * @returns {Promise<*>}
 */
function findById(id) {
    return baseDao.findById(id , table);
}

/**
 * 查询数据总数
 * @param where
 * @returns {Promise<*>}
 */
function getCount(where="",and="") {
    return baseDao.getCount(table, where,and);
}

/**
 * 根据id删除数据
 * @param id
 * @returns {Promise<*>}
 */
function deleteById(table,id) {
    return baseDao.deleteById(table, id);
}

/**
 * 删除多个ids的数据
 * @param ids
 * @returns {Promise<*>}
 */
function deleteByIds(ids) {
    return baseDao.deleteByIds(table, ids);
}

/**
 * 插入数据到数据库中
 * @param obj
 * @returns {Promise<*>}
 */
function insert(obj) {
    return baseDao.insert(table, obj);
}

/**
 * 编辑
 * @param obj
 * @returns {Promise<*>}
 */
function update(obj) {
    return baseDao.update(table, obj);
}

//根据username更新dormId
// function updateDormIdByUsernames(dormId,usernames){
//     if (!Array.isArray(usernames)){
//         throw new Error("usernames必须是一个数组")
//     }
//     let where = " where username in ("
//     usernames.forEach(item => {
//         where += `'${item}',`
//     })
//     where = where.substring(0,where.lastIndexOf(","))
//     where += ")";
//     return baseDao.updateBy(table,`dormId = ${dormId}`,where)
// }

module.exports = {
    findByPage, findById, getCount, deleteById, deleteByIds, insert, update
}